package com.atguigu.gmall.item.vo;

import com.atguigu.gmall.pms.entity.CategoryBrandEntity;
import com.atguigu.gmall.pms.entity.CategoryEntity;
import com.atguigu.gmall.pms.entity.SkuImagesEntity;
import com.atguigu.gmall.pms.vo.ItemGroupVo;
import com.atguigu.gmall.pms.vo.SaleAttrValueVo;
import com.atguigu.gmall.sms.vo.ItemSaleVo;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Data
public class ItemVo {
    //面包屑
    //一二三级分类
    //2.根据三级分类Id查询一二三级分类 V
    private List<CategoryEntity> categories;

    //品牌
    //3.根据品牌id查询品牌	V
    private Long brandId;
    private String brandName;

    //spu信息
    //4.根据spuId查询spu	V
    private Long spuId;
    private String spuName;

    //基本信息 sku相关信息
    //1.根据skuId查询sku	V
    private Long skuId;
    private String title;
    private String subtitle;
    private BigDecimal price;
    private Integer weight;
    private String defaultImage;

    //图片列表
    //5.根据skuId查询sku的图片列表 V
    private List<SkuImagesEntity> images;

    //营销信息
    //6.根据skuId查询营销信息（积分 满减 打折）V
    private List<ItemSaleVo> sales;

    //是否有货
    //7.根据skuid查询库存 V
    private Boolean store =false;

    //同一个sup下的所有销售属性的集合 V
    //[{attrId:3,attrName:机身颜色,:attrValues:[黑色，金色,白色]},
    // {attrId:4,attrName:运行内存,attrValues:[6G,8G,12G]},
    // {attrId:5,attrName:机身内存,attrValues:[128G,256G,512G]}]
    //8.根据spuId查询spu下所有sku的销售属性
    private List<SaleAttrValueVo> saleAttrs;

    //当前sku的销售属性
    //{3:黑色,4:8G,5:128G}
    //9.根据skuId查询当前sku的销售属性 V
    private Map<Long,String> saleAttr;

    //销售属性组合与sku的映射关系
    // {'白色,6G,128G:100','黑色,8G,256G:101'}
    //10.根据spuId查询spu下所有销售属性组合与skuId的映射关系 V
    private String skuJsons;

    // 商品介绍与规格参数
    //spu描述信息
    //11.根据spuId查询spu的海报信息 V
    private List<String> spuImages;

    //规格参数分数
    //12.查询规格参数分组及组下的规格参数和值
    private List<ItemGroupVo> groups;
}
